package com.cn.springcloudwechat.mapper.mapper;

import com.cn.springcloudwechat.model.*;
import com.cn.springcloudwechat.model.articleAndMenu.YmArticle;
import com.cn.springcloudwechat.model.dto.ArticleDetailsDto;
import com.cn.springcloudwechat.model.dto.ArticleDto;
import com.cn.springcloudwechat.model.find.communication.YmExchange;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface YmUserInfromMapper {

    /**
     * 新增用户系统消息
     * @param ymUserInfrom
     * @return
     */
    Integer insertUserInformation(YmUserInfrom ymUserInfrom);

    /**
     * 用户系统消息查询
     * @param userId
     * @return
     */
    List<Map<String,Object>> getInformation(@Param("userId") Long userId);

    /**
     * 用户服务提醒查询
     * @param userId
     * @return
     */
    List<Map<String,Object>> getRemind(@Param("userId") Long userId);

    /**
     * 用户订单查询
     * @param userId
     * @param orderPayState
     * @return
     */
    List<Map<String,Object>> getYmOrder(@Param("userId")Long userId, @Param("orderPayState")String orderPayState);


    /**
     * 交流圈
     * @param userId
     * @return
     */
    List<Map<String,Object>> getYmExchange(@Param("userId") Long userId);

    /**
     * 读取标识修改(互动消息)
     * @param answerId
     * @return
     */
    Integer updateReadState(@Param("answerId") Long answerId);

    /**
     * 读取状态修改（系统消息，服务提醒）
     * @param informId
     * @return
     */
    Integer updateState(@Param("informId")Long informId);

    /**
     * 关于我们
     * @return
     */
    Map<String,Object> getAboutUs();

    /**
     * 查询关于我们文章列表
     * @return
     */
    List<ArticleDto> getArticleDto();

    /**
     * 查询关于我们文章详情
     * @return
     */
    ArticleDetailsDto getArticleDetailsDto(Long articleId);

    /**
     * 查询文章附件列表
     */
    List<String> getAttachment(Long articleId);

    /**
     * 互动消息帖子
     * @param userId
     * @return
     */
    List<Map<String,Object>> getInteractiveMessage(@Param("userId") Long userId);

    /**
     * 互动消息文章
     * @param userId
     * @return
     */
    List<Map<String,Object>> getArticleReply(@Param("userId") Long userId);

    /**
     * 互动消息医生
     * @param userId
     * @return
     */
    List<Map<String,Object>> getDoctorAnswer(@Param("userId") Long userId);

    /**
     * 互动消息医生1
     * @param userId
     * @return
     */
    List<Map<String,Object>> getDoctorAnswerUser(@Param("userId")Long userId);

    /**
     * 互动消息帖子及回复
     * @param userId
     * @return
     */
    List<Map<String,Object>> getExchangeAnswer(@Param("userId") Long userId);

    /**
     * 删除订单
     * @param userId
     * @param orderId
     * @return
     */
    Integer deleteOrder(@Param("userId") Long userId,@Param("orderId")Long orderId);

}